package org.nekperu15739.boot.domain;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import org.apache.commons.lang.builder.ToStringBuilder;

@Entity
public class Factura {
	
	private int idFactura;
	private String codigo;
	private String formaPago;

	
	private Cliente cliente;

	public Factura() {
		super();
		// TODO Auto-generated constructor stub
	}

	public Factura(int idFactura, String codigo, String formaPago,
			Cliente cliente) {
		super();
		this.idFactura = idFactura;
		this.codigo = codigo;
		this.formaPago = formaPago;
		this.cliente = cliente;
	}
	
	   public Factura(String codigo, String formaPago,
	            Cliente cliente) {
	        super();
	        this.codigo = codigo;
	        this.formaPago = formaPago;
	        this.cliente = cliente;
	    }

	   @Id
	    @GeneratedValue(strategy = GenerationType.IDENTITY)
	    @Column(name = "id_factura")
	public int getIdFactura() {
		return idFactura;
	}

	public void setIdFactura(int idFactura) {
		this.idFactura = idFactura;
	}

	@Column(name="codigin")
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getFormaPago() {
		return formaPago;
	}

	public void setFormaPago(String formaPago) {
		this.formaPago = formaPago;
	}

	//Relaci�n de composici�n muchos a uno
    //El extremo del 'manyToOne' es OBLIGATORIO
    @ManyToOne
    @JoinColumn(name="fk_id_cliente", referencedColumnName="id_cliente")
	public Cliente getCliente() {
		return cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

    @Override
    public String toString() {
         return ToStringBuilder.reflectionToString(this);
    }

}
